﻿# CMakeList.txt: CmakeTest 的 CMake 项目，在此处包括源代码并定义
# 项目特定的逻辑。
#
cmake_minimum_required (VERSION 3.8)

# Enable Hot Reload for MSVC compilers if supported.
if (POLICY CMP0141)
  cmake_policy(SET CMP0141 NEW)
  set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
endif()

project ("CmakeTest")

# add_subdirectory(src)
# # 将源代码添加到此项目的可执行文件。
# add_executable (CmakeTest   "main.cpp")
# target_link_libraries(CmakeTest PRIVATE src_lib)

set(SRC_DIRS src)  # 根据实际的src目录名称进行修改和添加 set(SRC_DIRS src1 src2)
foreach(SRC_DIR ${SRC_DIRS})
    add_subdirectory(${SRC_DIR})
endforeach()
# 添加可执行文件，这里假设主程序是main.cpp，它将会链接后面生成的静态库
add_executable(CmakeTest main.cpp)
# 将各个src目录下构建生成的静态库链接到可执行文件
set(LIB_NAMES src_lib)  # 根据src目录数量及对应生成的静态库名称修改 set(LIB_NAMES aaa_lib_1 aaa_lib_2)
foreach(LIB_NAME ${LIB_NAMES})
    target_link_libraries(CmakeTest PRIVATE ${LIB_NAME})
endforeach()

if (CMAKE_VERSION VERSION_GREATER 3.12)
  set_property(TARGET CmakeTest PROPERTY CXX_STANDARD 20)
endif()

# TODO: 如有需要，请添加测试并安装目标。
